// 定义表示记分牌的类
class ScorePanel {
  // score和level用来记录分数和等级
  score = 0;
  level = 1;

  // 分数和等级所在的元素，在构造函数中进行初始化
  scoreEle: HTMLElement;
  levelEle: HTMLElement;

  // 设置一个变量限制等级
  maxLevel: number;
  // 设置一个变量表示多少分时升级
  upScore: number;

  constructor(maxLevel: number = 10, upScore: number = 10) {
      this.scoreEle = document.getElementById('score')!;
      this.levelEle = document.getElementById('level')!;
      this.maxLevel = maxLevel;
      this.upScore = upScore;
  }

  //设置一个加分的方法
  addScore() {
      // 使分数自增
      this.scoreEle.innerHTML = ++this.score + '';
      // 判断分数是多少
      if (this.score % this.upScore === 0) {
          this.levelUp();
      }
  }

  // 提升等级的方法
  levelUp() {
      if (this.level < this.maxLevel) {
          this.levelEle.innerHTML = ++this.level + '';
      }
  }
}

// 测试代码
// const scorePanel = new ScorePanel(100, 2);
// for(let i=0; i<200; i++){
//     scorePanel.addScore();
// }

export default ScorePanel;